// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package com.tencent.utils; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.Signature; import android.database.Cursor; import android.net.Uri; import android.util.Log; import com.tencent.a.a.c; import java.security.MessageDigest; import java.util.List; // Referenced classes of package com.tencent.utils: // Util public class SystemUtils { public static final String QQ_SHARE_CALLBACK_ACTION = "shareToQQ"; public static final String QQ_VERSION_NAME_4_1_0 = "4.1.0"; public static final String QQ_VERSION_NAME_4_2_0 = "4.2.0"; public static final String QQ_VERSION_NAME_4_3_0 = "4.3.0"; public static final String QQ_VERSION_NAME_4_5_0 = "4.5.0"; public static final String QQ_VERSION_NAME_4_6_0 = "4.6.0"; public static final String QZONE_SHARE_CALLBACK_ACTION = "shareToQzone"; public SystemUtils() { } public static boolean checkMobileQQ(Context context) { PackageManager packagemanager = context.getPackageManager(); PackageInfo packageinfo1 = packagemanager.getPackageInfo("com.tencent.mobileqq", 0); PackageInfo packageinfo = packageinfo1; _L2: label0: { boolean flag = false; if (packageinfo == null) { break label0; } String s = packageinfo.versionName; android.content.pm.PackageManager.NameNotFoundException namenotfoundexception; int i; int j; try { Log.d("MobileQQ verson", s); String as[] = s.split("\\."); i = Integer.parseInt(as[0]); j = Integer.parseInt(as[1]); } catch (Exception exception) { exception.printStackTrace(); return false; } if (i <= 4) { flag = false; if (i != 4) { break label0; } flag = false; if (j < 1) { break label0; } } flag = true; } return flag; namenotfoundexception; Log.d("checkMobileQQ", "error"); namenotfoundexception.printStackTrace(); packageinfo = null; if (true) goto _L2; else goto _L1 _L1: } public static int compareQQVersion(Context context, String s) { return compareVersion(getAppVersionName(context, "com.tencent.mobileqq"), s); } public static int compareVersion(String s, String s1) { if (s != null || s1 != null) goto _L2; else goto _L1 _L1: return 0; _L2: String as[]; String as1[]; int i; if (s != null && s1 == null) { return 1; } if (s == null && s1 != null) { return -1; } as = s.split("\\."); as1 = s1.split("\\."); i = 0; _L3: int k; int l; if (i >= as.length || i >= as1.length) { break MISSING_BLOCK_LABEL_88; } k = Integer.parseInt(as[i]); l = Integer.parseInt(as1[i]); if (k < l) { return -1; } break MISSING_BLOCK_LABEL_118; if (as.length > i) { return 1; } int j; try { j = as1.length; } catch (NumberFormatException numberformatexception) { return s.compareTo(s1); } if (j > i) { return -1; } goto _L1 if (k > l) { return 1; } i++; goto _L3 } public static String getAppName(Context context) { return context.getApplicationInfo().loadLabel(context.getPackageManager()).toString(); } public static String getAppSignatureMD5(Context context, String s) { c.a("openSDK_LOG", "OpenUi, getSignValidString"); MessageDigest messagedigest; String s4; String s2 = context.getPackageName(); Signature asignature[] = context.getPackageManager().getPackageInfo(s2, 64).signatures; messagedigest = MessageDigest.getInstance("MD5"); messagedigest.update(asignature[0].toByteArray()); String s3 = Util.toHexString(messagedigest.digest()); messagedigest.reset(); messagedigest.update((new StringBuilder()).append(s2).append("_").append(s3).append("_").append(s).append("").toString().getBytes()); s4 = Util.toHexString(messagedigest.digest()); String s1 = s4; messagedigest.reset(); return s1; Exception exception; exception; Exception exception1; s1 = ""; exception1 = exception; _L2: exception1.printStackTrace(); c.a("openSDK_LOG", "OpenUi, getSignValidString error", exception1); return s1; exception1; if (true) goto _L2; else goto _L1 _L1: } public static String getAppVersionName(Context context, String s) { PackageManager packagemanager = context.getPackageManager(); String s1; try { s1 = packagemanager.getPackageInfo(s, 0).versionName; } catch (android.content.pm.PackageManager.NameNotFoundException namenotfoundexception) { return null; } return s1; } public static String getRealPathFromUri(Activity activity, Uri uri) { Cursor cursor = activity.managedQuery(uri, new String[] { "_data" }, null, null, null); String s = null; if (cursor != null) { int i = cursor.getColumnIndexOrThrow("_data"); cursor.moveToFirst(); s = cursor.getString(i); } return s; } public static boolean isActivityExist(Context context, Intent intent) { while (context == null || intent == null || context.getPackageManager().queryIntentActivities(intent, 0).size() == 0) { return false; } return true; } public static boolean isAppSignatureValid(Context context, String s, String s1) { c.a("openSDK_LOG", "OpenUi, validateAppSignatureForPackage"); PackageInfo packageinfo; Signature asignature[]; int i; int j; try { packageinfo = context.getPackageManager().getPackageInfo(s, 64); } catch (android.content.pm.PackageManager.NameNotFoundException namenotfoundexception) { return false; } asignature = packageinfo.signatures; i = asignature.length; j = 0; do { label0: { boolean flag = false; if (j < i) { if (!Util.encrypt(asignature[j].toCharsString()).equals(s1)) { break label0; } flag = true; } return flag; } j++; } while (true); } }